Georgy12, call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область)
call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область) вот так
либо
local fogmodifier loc = CreateFogModifierRect(whichPlayer, whichFogState, r, true, false)
call FogModifierStart(loc)
ты установил Player(3) значит это 4 игрок а ты в тест карту запускает 1 игрок пойми!!!
чтобы все игроки видел облость надо циклом от 0 до 11
Понял в чем был косяк, ни одна из функций модификации видимости не имела эффекта, потому что перед ней был следующий вызов модификации тумана с параментром true:
Только мемхак, если вас не устраивают баффы детектов (волшебный огонь, посох чужих глаз, порошок прозрения).
Стоит отметить видимость юнита и детекция - разные опции, инвизер может быть обнаружен но не видем в тумане войны.
Какой путь к текстуре в самой модели? В оригинальном Warcraft'е это "Textures\Meatwagon.blp".
Если у тебя путь "Textures\trupovozka_by_autorname.blp", то в Импорте так и пиши: "Textures\trupovozka_by_autorname.blp".
через obj не над там копируються вершины а то и несколько раз и слои слепляются в 1,3ds и через милкшарп,еси напрямую в мделвис то uv будет зекальна по y,а лутше перкинуть через макс(еси есть)
ну полигонам то укладывайся в 10к на супер хд моделей
материал ты не как не перенесешь только текстуру
материалы для вара создаются в warcraft model editor
Ась, что кого? для 126 отслеживание выделения в группе только на мемхаке, чистый 126 лесом, на рефордже через GetChild, вот ссылка, надо скопипастить на русском на Xgm
Но если принебречь этим множественным выбором и представить что выбор единичный
Тогда на гуи всё есть и получиться
C - Юнит выбран
У - Юнит такой-то, способность такая то есть, владелец выбранного=владелец выбирающего
Д -
set s = "" s = string
if p = GetLocalPlayer() then
set s = "Тут\\Типа\\Адрес\\Модели.mdx"
endif
call СоздатьСпецэффект(s,x,y) x,y - координаты, либо вместо них точка, либо виджет
а если по поводу вопроса
Но не понимаю, как именно применить тут эту систему
Система уже расписана, суть в том что у локального игрока создастся эффект с моделью, а у остальных с пустышкой и они ничего не увидят
set s = "" s = string пустышка
if p = GetLocalPlayer() then -- если локальный игрок тогда
set s = "Тут\\Типа\\Адрес\\Модели.mdx" -- модель уже не пустышка
алгоритм слишком сложной в нём только ты и можешь разобраться, но..
если бы у меня такое была, да и в принципе как я избавляюсь от бесконечных циклов, это просто ограничиваю его неким возможным числом и как только число переваливает, я вызываю дебаг, или же обрываю функцию не давая её дальше работать, ограничь работу каждого цикла например до 100 (очень сложно давать совет когда не особо понимаешь алгоритм)
Но у тебя тут либо бесконечный просто либо 1 вызывает другой до бесконечности
Если же первый оч просто отловить, то со вторым придётся попотеть и задебажить всё что движется после 100, пока на экран, в любом случае последнее что ты увидешь после зависания, это как числа перевалили за 100, я думаю они успеют покрыть экран, ну на крайняк расставь вот эти дебаги которые в прелоад пишут, у тебя не будетработать а у нас будет, ну я точно скину тебе лог
ScopteRectuS, Я решил проблему там баг, если указать регион как точку назначения портала, то с ним триггеры перестают работать. Я просто указал другой регион. biridius, Ну это альфа версия, за 5 мин сделал, знаю об утечках.
Я юзал морф, а не грейд. Грейд был в другой наработке, и там не было проблем с анимацией. В наработке с морфом нет никаких вейтов.
Всё остальное какая-то ерунда, какие переменные? Грейд делается и всё.
Отмена для меня преимущество такое себе
И тем не не менее, отменять грейд тебе нужно, потому преимущество вполне себе.
Я больше-то вот как раз вышеупомянутые баги имел в виду
Эффекты аур могут остаться на юните, с героями ещё хуже. Так-то всё написано тут, пункт 19.
Скорее всего при сохранении текстуры в .blp формате ты случайно зацепил кнопку "Инвертировать альфа канал." Попробуй в твоей текстуре нажать это и сохранить ее. Посмотрим на результаты.
Еще возможный вариант - не правильный способ фильтрования или как-то так.
xgm.guru/p/wc3/okno Вот ссылка на модели окон, можешь просто достать оттуда стекла. А вообще чтобы сделать полупрозрачное окно нужно сделать альфа-канал серым и дополнительно настроить модельку в вар3ме
Вроде как, движок варкрафта не поддерживает полупрозрачность. По крайней мере, все мои попытки импортировать полупрозрачную текстуру в модельку оканчивались замазанными частями текстуры.
В варе есть не мало полупрозрачных элементов, к примеру те же крылья Иллидана.
Прямо говоря, не сталкивался с подобным, но попробуй не с Рабочего стола проводить манипуляции, а из корня диска C:\
Также попробуй распаковать mix. Но раз карта защищённая, то спроси лучше quq_CCCP, он со многими видами защиты работал.
Вот, тут все что тебе нужно, в дальнейшем ищи статьи, если ничего не находишь, то задавай вопрос. LordDracula:
В карте есть эффект освещения, можно его юзать и прикреплять к примеру к костру. Выглядит очень атмосферно.
Да, я нашел эту статью уже и задействовал эффекты, находящиеся в ней(пост №5). Dragonear:
Если хотите, могу скинуть карту с различными моделями эффектов.
Proshel_Doty, о, это проблема с нормалями. Странно, что такое на хайве вообще пропустили.
Нужно материалы сделать односторонними, а потом через mdlvis обратить нормали у всех полигонов, которые стали прозрачными.
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
скорее всего ты при инициализации проверяешь статус слота игрока, а этого делать нини ))) ибо это частенько может приводить к десинку, вот эти игроки и получают его благополучно во время инициализации)))
Да чего вы чушь на уши льете человеку. Ты должен дать юниту способность-пустышку, допустим - веерный бросок, но все параметры, типо урона и радиуса действия сотри, напиши описание. Маны способность не будет стоить, но в описании ты укажешь, сколько золота стоит улучшение. Итак, структура триггера на словах.
Событие:
-Юнит приводит способность в действие
Условие:
-Тип юнита: пехотинец (поищи, найдешь).
Действия:
Если применяющая способность равна Бандит, то
-Боевая единица: удалить применяющий юнит
-Боевая единица: создать бандита (позиция применяющий юнит, владелец применяющий юнит, и т.п.)
-Игрок: вычесть столько то золота
Иначе ничего не делать
Если применяющая способность равна Рыцарь, то
Делать тоже самое, только создай рыцаря, вычитай другое кол-во золота.
Иначе ничего не делать
P.S: можно использовать переменную типа юнит, однако желательно локальную, если ты знаешь, что это. Хотя я не могу быть уверен, что переменная как-то сильно поможет, можно обойтись и без нее.
Кстати, увидел, что человек выше написал функцию заменить юнита на другого, не помню ее, но может она и есть, тогда вместо удаления и добавления нового юнита лучше воспользоваться заменой.
у меня не улучшение как таковое а "Улучшается ДО" , никогда с этими улучшениями дела не имел, а как у других? Продавать юнита и при продаже подменять, чтобы проапгрейдить, мне кажется эта вещь должна нормально работать в варе же, неужели все тдшки и всякие петры на другой системе сделаны?
По своей проблеме разобрался, в РО карта путей стоял пункт "Нет" у башни 1, именно это и вызывало фатал при отмене улучшения
багом разве что можно попробовать сместить иконки, при удалении других оно автоматом займёт места (такое происходит когда к примеру есть 2 иконки с координатами 0, 0)
на мемхаке можно сделать то что ты хочешь, но лично у меня такое только для способностей реализовано)
возможно на рефе есть для этого функции, они обычно с приставкой Blz
Можно, в казарму прописать все 4 вида скелетов для найма.
При старте карты триггерно блокировать всех скелетов, кроме первого стартового, для игрока или всех игроков.
Создать триггер, где юнит завершает исследование.
Туда прописать, что в зависимости от уровня исследования, блокировать предыдущего скелета для игрока, и разблокировать следующего.
Аналогично прописать условия на все вариации скелетов, и расписать на всех игроков.
Как то так, примерно). Само исследование в данном случае будет пустышкой, и будет нужно только для запуска триггера.
эта статья к тебе не относится
она совсем про другое
тебе не нужны ни буферы ни файлы
по поводу 1 и 2 пунктов
а ты попробуй
а потом напиши тут о том что получилось
Можно сделать импорт всего 2 раза.
Active\BTNGem.blp - активная иконка.
Inactive\BTNGem.blp - активная иконка для выключенного предмета, переименована из DISBTNGem.blp
ReplaceableTextures\CommandButtonsDisabled\DISBTNGem.blp - неактивная иконка.
Я думал сначала, что для выключенной иконки будет своя неактивная.
Была проблема с загрузкой на сайт, уже починили, можешь смело заливать.
Какой предел размера карты для публикации на этом сайте?
100 мегабайт у всего ресурса, но если надо больше и есть что показать, то можно попросить модераторов залить на сайт и + ссылки на облака никто не запрещал.
Вот есть ограничение на игру по сети (8м)
Это где такое? ограничение было только на гарене, и ото оно обходилось через спец патч, сейчас всё хостуется через ирину или последний патч рефорджа
Хотелось бы узнать что сколько кушает. Т.е. какую часть памяти примерно занимают триггеры (300+ штук), какую ландшафт (почти 8 тысяч декораций), юниты на карте, юниты в редакторе, спелы, переменные? На что мне сделать упор в плане оптимизации размера карты? Из моментов, к которым сам пришел это
1 -удаление юнитов с карты и добавление их уже в игре через триггеры,
2 -редактирование стандартных спелов взамен созданию новых на их основе
Можно открыть карту любой mpq программой, разумеется и посмотреть какой файл что кушает, в твоей случае после импорта на 2 месте будут гуи триггеры. Но можно вообще не заморачиваться по поводу размеров в 2020, а на сайте просто был глюк
VinerX, посмотри гуи функцию "пропустить остальные действия" по факту это слово "return" в коде, то есть после ретурна ты никак не поставишь set newUnit = null, и правильно это делать после set bj_lastReplacedUnit = newUnit, а возвращать не newUnit, а bj_lastReplacedUnit, вот код если непонятно
set bj_lastReplacedUnit = newUnit
set newUnit = null
set oldUnit = null
set indexItem = null
return bj_lastReplacedUnit
Вобщем озарение как всегда пришло внезапно - понял что GetSpellAbilityUnit срабатывает на дамми и записывает в массив его, а не цель щита. Просто передвинул махинации с дамми в конец функции Actions. Всё отменно работает. Всем спасибо все свободны
Это сжатый вариант, с минимальными данными, на синтаксис можете не смотреть.
Моя версия - хэндл в тестах идёт в виде 23763, так что пока думаю как это решить (математика!!!) Гы.
Решил проблему, добавив
set ch = ModuloInteger(ch,8189) Гы.
KiWave, а вот ии такая штука что хз что ему не хватает, бывает они ломаются и только добывают ресурсы. Тщательно проверь настройки всех зданий и доступны ли они ИИ по ресурсам и требованиям, просто раздай контроль над ИИ себе и сиди смотри за ним.
не именно пехотинец а вообще любой герой который применяет этот приказ.
это так сказать модификатор атаки будет. мне нужен скил который включается и отключается.
Я уже использовал скилы - Жар преиспобней и Щита маны.
У одного героя может быть 3 модификатора атаки сразу
ты знаешь начальные хп декораций
ты можешь отловить факт приказа добывать дерево и OrderTargetDestructable
ты можешь перезаписывать этот триггер каждый раз, как юнит получает новый приказ, хотя хз, как оно себя ведет при смене дерева
нормального способа задетектить урон по не-юнитам нет
Да сделай проще. Создай многоуровневую способность-пустышку. и когда отдаешь приказ атаковать в область, давай ему эту способность и с помощью неё отслеживай, какую область атаковать.
Например,
способность уровень 1, значит атаковать должен 1 область.
Уровень 2 - 2 область и т. д.
Не вижу смысла усложнять жизнь с хеш-таблицей.
Надеюсь понятно?) Отдал приказ, присвоил способность, после каста жди пару сек и в зависимости от уровня способности-пустышки отправляй в ту или иную область.
Этого никто не знает. У меня вот ИИ-боты сами новые предметы не могут купить, пока не положишь. Некоторые даже не принимает и продает/выбрасывает (оказывается есть типы итемов, и итемы, которые сделаны на этой основе, ИИ заставляет продавать. Брал другой подходящий тип, который бот не продаст, и им же заменял, или на его основе создавал новый).
не пробовали на триггерах ИИ написать. Это правда может быть сложнее. Щас пробую со системой строительства намутить, пробую полную ветку здании строить. Сами строят. Можно даже отойти чай пить, пока ваши юниты строят. Со строительством может и прокатит, а вот с войсками? Там трудного ничего нет. Нанял, накопил войско. Мне пока не хватает знании, так как классический вар мало играю. Не знаю каких юнитов нужно нанимать и в каких количества, там порядок. В битве какие заклинания применять и прочее? Это оказалось сложнее, много всего
ну вот в чём твоя ошибка: Ты изменил название текстуры, а значит ты изменил и пути, тебе нужно зайти в war3modelEditor и там уже открыв модель выбрать вкладку: Windows=>Texture Manager, где будет список текстур, ты удаляешь 1 старую текстуру, которая у тебя была и добавляешь новую, при этом модель с текстурой должны лежать в одной папке, которая не содержит кириллицы (например путь должен быть d:\Users\User\Desktop\moroz - без русских букв ).
Переименовать новую текстуру на старую по идее не имеет смысла, потому что опять же ты сохранил её без текстуры, а => испоганил, накосячил, сломал (называй как хочешь).
Попробуй конвертировать через war3 image extracror, а в фш сохрани картинку как 32 битную. Ну и разумеется разрешение 512х512
Когда будешь вставлять в карту, закинь картинку в мапу , а еще тебе понадобится LoadScreen.mds. В свойствах карты на загрузочный экран установишь LoadScreen.mdx, ну это я так, на всякий случай. Саму картинку нужно назвать FullScreen.blp
Danil64, я про синий фон в диалоговом окне и меню. И нет, это не оно, ведь написано "human-transport-slot" и хочется ответить цитатой из криминального чтива. А тот самый синий фон у альянса находится по адресу UI\Widgets\EscMenu\Human\human-options-menu-background
В функции main по умолчанию есть вызов стандартной функции InitBlizzard, в которой есть вызов функции InitSummonableCaps.
function InitSummonableCaps takes nothing returns nothing
local integer index
set index = 0
loop
// upgraded units
// Note: Only do this if the corresponding upgrade is not yet researched
// Barrage - Siege Engines
if (not GetPlayerTechResearched(Player(index), 'Rhrt', true)) then
call SetPlayerTechMaxAllowed(Player(index), 'hrtt', 0)
endif
// Berserker Upgrade - Troll Berserkers
if (not GetPlayerTechResearched(Player(index), 'Robk', true)) then
call SetPlayerTechMaxAllowed(Player(index), 'otbk', 0)
endif
// max skeletons per player
call SetPlayerTechMaxAllowed(Player(index), 'uske', bj_MAX_SKELETONS)
set index = index + 1
exitwhen index == bj_MAX_PLAYERS
endloop
endfunction
Тут выставляется лимит на обычных скелетов, убираются иконки парового танка и берсерка.
Перед выполнением InitBlizzard выполняются все функции, что генерируются в настройках игроков, для этого в InitSummonableCaps стоят проверки.
А вот интересно, когда делаешь грейд на берсерков, то в бараке нанимаешь троллей или берсерков?
Достаточно взглянуть на грейд и становится ясно, что нанимаешь сразу берсерков.
Решение вопроса такое.
1. Во время инициализации ставим для всех игроков (как в функции InitSummonableCaps) разрешаемое кол-во рыцарей на 0.
2. Один триггер регистрирует появление алтаря на карте.
С: Юнит входит в область Вся карта
У: Тип Triggering unit равно Алтарь
Д: Поставить лимит на производство Рыцарь в -1 для Игрока-владельца Triggering Unit
3. Другой триггер регистрирует смерть алтаря.
С: Юнит умирает
У: Тип Умирающий юнит равно Алтарь
Д: Выбрать всех юнитов в группе (Юниты Игрока-владельца Умирающего юнита с условием (Тип Matching unit равно Алтарь))
Если первый юнит в последней созданной группе равно Нет юнита то (Поставить лимит на производство Рыцарь в 0 для Игрока-владельца
Умирающего юнита)
Уничтожить последнюю созданную группу.
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode
War3Modeleditor через просмотр MPQ архивов по папкам ищеш путь к тайлсету записываеш себе в блокнотике и потом пишеш такой же путь у своей текстуры в редакторе.
|r не убирает а просто означает конец строки которвый вызвалии ранее цвета что вы можете делать цветные название |c[00][00][00][00]Привет|r
1 - это прозрачность
2,3,4 это цвет hex из 2 символов
И под конец цвет завершаем окраску со словом r
» WarCraft 3 / Не раскрывается невидимость юнита
» WarCraft 3 / Вопрос по моделям .mdx
» WarCraft 3 / Лог вылета
» WarCraft 3 / Не работает триггер
» WarCraft 3 / Модель, прозрачные текстуры
» IrInA Host Bot / файл карты не найде?
» WarCraft 3 / Источник света
» WarCraft 3 / Спецэффект на анимацию
» WarCraft 3 / Просьба о помощи!
» WarCraft 3 / Выкидывает
» WarCraft 3 / Улучшение юнита
» WarCraft 3 / Путь к иконке
» WarCraft 3 / Вопрос по оптимизации карты (?)
» WarCraft 3 / ИИ не хочет работать
» WarCraft 3 / Приказ юнита не срабатывает
» WarCraft 3 / Проблема с blp.
» WarCraft 3 / Иконка для юнита
» WarCraft 3 / Перемещение юнита в случайную точку
» WarCraft 3 / Замена тайлсета
» WarCraft 3 / Символ переноса строки